﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;

namespace WindowsFormsApplication1
{
    public partial class RegisterPatientForm : Form
    {
        public RegisterPatientForm()
        {
            InitializeComponent();
        }

        private void Zarejestruj_Click(object sender, EventArgs e)
        {
            Control control = Control.getInstance();

            if (TB_Imie.TextLength == 0 || TB_Nazwisko.TextLength == 0 ||
                TB_PESEL.TextLength == 0 || TB_Wiek.TextLength == 0 ||
                TB_Miasto.TextLength == 0 || TB_Adres.TextLength == 0)
            {
                MessageBox.Show("Proszę wypełnić wszystkie pola.", "Niewystarczające dane", MessageBoxButtons.OK, MessageBoxIcon.Error);
                return;
            }

            if (control.IsDBConnectionOpen())
            {
                String connStr = "SELECT * FROM pacjent WHERE PESEL = " + DBConnection.MySqlEscape(TB_PESEL.Text) + ";";
                System.Data.Odbc.OdbcDataReader m_ODBCResult = control.ExecuteQuery(connStr);

                if (m_ODBCResult.Read())
                {
                    MessageBox.Show("Pacjent o podanym numerze PESEL istnieje już w bazie danych.", "Taki pacjent już istnieje", MessageBoxButtons.OK, MessageBoxIcon.Error);
                    return;
                }

                connStr = "INSERT INTO pacjent (imie, nazwisko, PESEL, wiek, miasto, adres) VALUES ('" +
                          DBConnection.MySqlEscape(TB_Imie.Text) + "','" +
                          DBConnection.MySqlEscape(TB_Nazwisko.Text) + "'," +
                          DBConnection.MySqlEscape(TB_PESEL.Text) + "," +
                          DBConnection.MySqlEscape(TB_Wiek.Text) + ",'" +
                          DBConnection.MySqlEscape(TB_Miasto.Text) + "','" +
                          DBConnection.MySqlEscape(TB_Adres.Text) + "');";

                int result = control.ExecuteStmt(connStr);
                if (result != 1)
                {
                    MessageBox.Show("Niezidentyfikowany błąd bazy danych.", "Błąd bazy danych", MessageBoxButtons.OK, MessageBoxIcon.Error);
                    return;
                }
                else
                {
                    MessageBox.Show("Pomyślnie wprowadzono dane do bazy.", "Wprowadzono dane", MessageBoxButtons.OK, MessageBoxIcon.Information);
                }
            }
            else
            {
                MessageBox.Show("Błąd w połączeniu do bazy danych. Spróbuj ponownie.", "Błąd bazy danych", MessageBoxButtons.OK, MessageBoxIcon.Error);
                return;
            }

            control.CloseWindow(this);
        }

        private void OnFormClose(object sender, EventArgs e)
        {
            Control.getInstance().CloseWindow(this);
        }
    }
}
